/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.etrs.formathlon.vue.jsf.utils;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 * Ajoute la fonctionnalité popup de confirmation aux managedBean.
 * @author OPIF
 */
@ManagedBean
@SessionScoped
public class ConfirmationBean extends GeneralBean {
    
    private String titre;
    private String message;
    private boolean visible;
    private Confirmable beanDemandantConfirmation;
    
    /**
     * Action de confirmer.
     */
    public void confirmer(){
        beanDemandantConfirmation.confirmer();
        close();
    }
    
    /**
     * Action d'infirmer.
     */
    public void infirmer(){
        beanDemandantConfirmation.infirmer();
        close();
    }

    /**
     * Action d'ouvrir.
     * @param beanDemandantConfirmation
     * @param message
     * @param titre 
     */
    public void open(Confirmable beanDemandantConfirmation, String message, String titre){
        this.beanDemandantConfirmation=beanDemandantConfirmation;
        this.titre=titre;
        this.message=message;
        visible=true;
    }

    /**
     * Action d'ouvrir.
     * @param beanDemandantConfirmation
     * @param message 
     */
    public void open(Confirmable beanDemandantConfirmation, String message){
        open(beanDemandantConfirmation, message, getMessage("application.ConfirmationBean.open"));
    }
    
    /**
     * Action de fermer.
     */
    public void close(){
        visible=false;
    }
    
    /**
     * @return the visible
     */
    public boolean isVisible() {
        return visible;
    }

    /**
     * @param visible the visible to set
     */
    public void setVisible(boolean visible) {
        this.visible = visible;
    }

    /**
     * @return the message
     */
    public String getMessage() {
        return message;
    }

    /**
     * @param message the message to set
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * @return the titre
     */
    public String getTitre() {
        return titre;
    }

    /**
     * @param titre the titre to set
     */
    public void setTitre(String titre) {
        this.titre = titre;
    }

}
